import axios from 'axios'
import qs from 'qs'

const instance = axios.create({
  baseURL: 'https://ir3.anbio.xyz', // 本地调试在接口前面加入api/  部署的时候记得在这个地方改成  process.env.VUE_APP_SM_API https://door.bainong365.com/api
  timeout: 50000
})

instance.defaults.transformRequest = data => qs.stringify(data)

instance.interceptors.request.use(
  config => {
    // 设置header
    setHeader(config)
    return config
  },
  error => {
    // Do something with request error
    console.log(error) // for debug
    Promise.reject(error)
  }
)

// axios response封装的数据在data里面
instance.interceptors.response.use(

  response => {
    // eslint-disable-next-line eqeqeq
    if (response.data.resultStatus == false) {
      // this.$message.error(response.data.errorMessage)
    }
    // eslint-disable-next-line eqeqeq
    return response.data
  },
  error => {
    const { response } = error
    if (response) { // 如果response存在，服务器最起码返回结果
      switch (response.status) { // 这一块根据服务器来进行判断编写的
        case 401: // 权限  当前请求需要用户登录（一般叫做未登录）
          break
        case 403: // 服务器拒绝执行， （一般是token过期）
          // localStorage.getItem
          break
        case 404: // 找不到页面存在
          break
      }

      console.log('查看错误返回', response)
    } else { // 服务器连结果都没有返回，这里只有服务器崩了或者断网问题
      if (!window.navigator.onLine) {
        // 断网处理： 可以跳转断网页面
        return
      }
      return Promise.reject(error)
    }
  }
)

function setHeader (config) {
  // setHeader
  config.headers.accessToken = localStorage.getItem('accessToken')
}

export default instance
